package com.umbrella.manage.utils;

import java.security.MessageDigest;

public class MessageDigestUtils {
	/**
	 * <p>内容的缺省编码方法。<p>
	 */
	private static final String DEFAULT_ENCODE = "UTF-8";
	public static final String MD5 = "MD5";
	
	public static byte[] digest(String algorithm, String content, String encode) {
        try {
            MessageDigest alga = MessageDigest.getInstance(algorithm);
            alga.update(content.getBytes(encode));
            return alga.digest();
        } catch (Exception e) {
        	return null;
        }
	}
	
	/**
	 * <p>生成消息签名。</p>
	 * <p>使用内容的缺省编码方法。</p>
	 *
	 * @param algorithm 签名算法。
	 * @param content 内容字符串。
	 * @return byte[] 消息签名。
	 */
	public static byte[] digest(String algorithm, String content) {
		return digest(algorithm, content, DEFAULT_ENCODE);
	}
	
	/**
	 * <p>生成消息签名，以十六进制的ASCII字符串形式返回。</p>
	 *
	 * @param algorithm 签名算法。
	 * @param content 内容字符串。
	 * @return String 消息签名。
	 */
	public static String digestHEX(String algorithm, String content) {
		return StringUtils.bytesHEX(digest(algorithm, content));
	}

}
